home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / COMMUNIC / H191.ZIP / CA29-3.EXE / BBS.CMD < prev    next >
OS/2 REXX Batch file  |  1993-07-13  |  26KB  |  1,568 lines

  1. LEGE "Scripted BBS (1.3); initializing"
  2. WOPE 10,1 12,78 (default)
  3. ATSA 11,3 (default) "Initializing BBS.. "
  4. S20="_PARM"(11:14)*","*"_PARM"(0:3)
  5. S21="ATE0Q0V1X1S0=2 S7=30 S9=10^M"
  6. S22="\BBS"
  7. S23="\BBS\FILES"
  8. S24="\BBS\MAIL"
  9. S25="\BBS\BULLETIN"
  10. S26=""
  11. SET PARI NONE
  12. SET DATA 8
  13. SET STOP 1
  14. SET MASK ON
  15. SET CR_I CR_L
  16. SET ASCI UP_L LF
  17. SET SOFT ON
  18. SET ZMOD AUTO OFF
  19. SET ZMOD RECO OFF
  20. IF ISSC "BBSDAT"
  21. FCAL "BBSDAT"
  22. ELSE
  23. S10="_SCRIPT"
  24. GOSU Parse_Fn
  25. S10=S10*"\BBSDAT"
  26. IF ISSC S10 FCALL S10
  27. ENDI
  28. SUBD S29
  29. DLDI S28
  30. IF NOT ISFILE S22*"\BBS-User"
  31. WCLO
  32. GOTO NoUser
  33. ENDI
  34. SET PORT S20(0:3)
  35. SET INAF OFF
  36. SET ALAR OFF
  37. SET ATIM 1
  38. CHDI S22
  39. SET DLDI S23
  40. LEGE "Scripted BBS (1.3);  Press ESC to terminate or to CHAT."
  41. WCLO
  42. ON ESCA GOSU Escape
  43. SET PORT S20(0:3)
  44. IF ISFILE "HOSTTEMP.STR" and ISFILE "HOSTTEMP.BAT"
  45. SET RECH ON
  46. LOAD STRING "HOSTTEMP.STR"
  47. SET FLAG(1) S0(0:2)
  48. SET FLAG(2) S0(3:5)
  49. SET FLAG(3) S0(6:8)
  50. DELE "HOSTTEMP.STR"
  51. S9="* Return from drop-to-DOS"
  52. GOSU Log_Item
  53. CLOG S9
  54. GOTO Main_Pro
  55. ENDI
  56. TRAN "_MESCAPE"
  57. SET BAUD S20(5:8)
  58. S9="* BBS script loaded"
  59. CLOG S9
  60. GOSU Log_Item
  61. GOTO Restart
  62. Parse_Fn:
  63. LENG S10 N10
  64. FOR N11=(N10-1),0,-1
  65. IF STRCMP S10(N11:N11) ":" or STRCMP S10(N11:N11) "\" GOTO PAFN100
  66. ENDF
  67. S11=S10
  68. S10=""
  69. RETU
  70. PAFN100:
  71. S11=S10(N11+1:N10)
  72. IF STRCMP S10(N11:N11) "\" DEC N11
  73. S10=S10(0:N11)
  74. RETU
  75. NoUser:
  76. LEGE "Scripted BBS (1.3);  Error initializing"
  77. WOPE 10,10,17,70 (default) NoUser_E
  78. ATSA 10,12 (default) " BBS initialization "
  79. ATSA 11,12 (default) "There is no user ID file (BBS-User) to be found on the"
  80. ATSA 12,12 (default) "subdirectory: "*S22
  81. ATSA 14,12 (default) "The script BBSETUP must be used to identify the subdir-"
  82. ATSA 15,12 (default) "ectory used by this BBS, and to create and maintain the"
  83. ATSA 16,12 (default) "files it uses."
  84. ATSA 17,29 (default) " Press any key to continue "
  85. KEYG S0
  86. NoUser_E:
  87. WCLO
  88. GOTO End
  89. Escape:
  90. CURS N98,N97
  91. WOPE 10,1 20,78 (default) ESC_ESC
  92. ATSA 10,3 (default) " BBS Operator menu "
  93. ATSA 12,3 (default) "1) Terminate the BBS"
  94. IF FLAG(3)
  95. ATSA 13,3 (default) "2) Enter chat with caller"
  96. ELSE
  97. ATSA 13,3 (default) ".. No caller currently on "
  98. ENDI
  99. ATSA 14,3 (default) "3) Cancel this window"
  100. ATSA 15,1 (default) "├────────────────────────────────────────────────────────────────────────────┤"
  101. IF ISSCRIPT "BBMAINT" and NOT FLAG(3)
  102. ATSA 16,3 (default) "4) Invoke BBS maintenance scripts"
  103. ELSE
  104. ATSA 16,3 (default) ".. Maintenance script not available"
  105. ENDI
  106. IF ISSCRIPT "BBSETUP" and NOT FLAG(3)
  107. ATSA 17,3 (default) "5) Invoke BBS setup script"
  108. ELSE
  109. ATSA 17,3 (default) ".. Setup script not available"
  110. ENDI
  111. ATSA 18,1 (default) "├────────────────────────────────────────────────────────────────────────────┤"
  112. ATSA 19,3 (default) "Select item: "
  113. ATSA 20,31 (default) " Press ESC to cancel "
  114. LOCA 19,16
  115. KEYG S0
  116. WCLO
  117. LOCA N98,N97
  118. SWIT S0
  119. CASE "1"
  120. GOTO End
  121. ENDC
  122. CASE "2"
  123. IF FLAG(3) GOTO Chat
  124. ENDC
  125. CASE "3"
  126. RETU
  127. ENDC
  128. CASE "4"
  129. GOSU EndBBS
  130. IF ISFILE "BBMaint" EXECUTE "BBMaint"
  131. ENDC
  132. CASE "5"
  133. GOSU EndBBS
  134. IF ISFILE "BBSetup" EXECUTE "BBSetup"
  135. ENDC
  136. DEFA
  137. SOUN 100,100
  138. ENDC
  139. ENDS
  140. GOTO Escape
  141. ESC_ESC:
  142. S0="3"
  143. RETU
  144. End:
  145. GOSU EndBBS
  146. EXIT
  147. EndBBS:
  148. SET TTHR OFF
  149. WOPE 10,1 12,78 (default)
  150. ATSA 11,3 (default) "Terminating BBS.. "
  151. HANG
  152. S9="* BBS script terminated"
  153. CLOG S9
  154. GOSU Log_Item
  155. SET DLDI S28
  156. CHDI S29
  157. MESS "BBS terminated... type Alt-X to exit COM-AND^M^J^M^J"
  158. TRAN "_MINIT"
  159. DELE "\HOSTTEMP.TXT"
  160. RESE
  161. WCLO
  162. CLEA
  163. IF ISSC "$$$SCHED" EXECUTE "$$$SCHED"
  164. RETU
  165. Chat:
  166. TRAN "^M^J"
  167. TRAN "^M^JOperator initiated chat mode..."
  168. S2="_LEGEND"
  169. LEGE "Scripted BBS (1.3);  Chat mode; null entry at prompt to exit"
  170. Chat_Loo:
  171. MESS "^M^JSYSOP: "
  172. GET S0 80
  173. IF NULL S0
  174. MESS "Continue? (Y/N, cr=y): "
  175. GET S0 2
  176. IF FIND S0 "N"
  177. TRAN "^M^JChat terminated by SYSOP"
  178. LEGE S2
  179. RETU
  180. ENDI
  181. S0=" "
  182. ENDI
  183. TRAN "^M^JSYSOP: "
  184. TRAN S0
  185. MESS "Caller: "
  186. TRAN "^M^JCaller: "
  187. GOSU Read_Com
  188. IF FLAG(0)
  189. MESS "^M^JCaller disconnected"
  190. LEGE S2
  191. RETU
  192. ENDI
  193. GOTO Chat_Loo
  194. Limit_Ti:
  195. IF FLAG(1)
  196. SET FLAG(0) OFF
  197. RETU
  198. ENDI
  199. TIME S9 1
  200. N19=S9(0:1)*60+S9(3:4)
  201. N18=S6(0:1)*60+S6(3:4)
  202. IF GT N18 N19
  203. N19=N19+1440
  204. ENDI
  205. N19=N19-N18
  206. IF GT N19 N0
  207. TRAN "^M^JYour alotted time has expired..."
  208. TRAN "^M^JYou are being disconnected."
  209. SET FLAG(0) ON
  210. RETU
  211. ENDI
  212. SET FLAG(0) OFF
  213. RETU
  214. Read_Com:
  215. IF FLAG(3)
  216. GOSU Limit_Ti
  217. IF FLAG(0) RETURN
  218. ENDI
  219. S9=""
  220. N27=0
  221. SET RMOD BINA
  222. RCOM100:
  223. SET TIME
  224. WHIL NOT RECEIVE and NOT HITKEY
  225. IF NOT CONNECTED GOTO RCOM500
  226. TSIN N28,N29,N30
  227. IF NOT ZERO N28 or N29 GT 3 GOTO RCOM400
  228. ENDW
  229. IF RECEIVE
  230. RGET S27 1 180
  231. IF FIND S27 "^M" GOTO RCOM300
  232. GOTO RCOM200
  233. ENDI
  234. IF HITKEY
  235. KEYG S27
  236. IF FIND S27(0:1) "0d"
  237. TRAN "!"
  238. GOTO RCOM300
  239. ENDI
  240. IF FIND S27(0:1) "08"
  241. ITOC 8 S27
  242. S27(1:79)=""
  243. ENDI
  244. LENG S27 N28
  245. IF N28 GT 1
  246. SOUN 100,400
  247. GOTO RCOM100
  248. ENDI
  249. IF NOT (FIND S27 "^H" and N27 EQ 0) TRANS S27
  250. CURS N28 N29
  251. ATSA N28 N29 (text) S27
  252. IF FIND S27 "^H"
  253. IF N27 GT 0 DEC N29
  254. ELSE
  255. INC N29
  256. ENDI
  257. LOCA N28 N29
  258. ENDI
  259. RCOM200:
  260. IF FIND S27(0:0) "^H"
  261. IF ZERO N27 GOTO RCOM100
  262. DEC N27
  263. IF N27 GT 0
  264. S9=S9(0:N27-1)
  265. ELSE
  266. S9=""
  267. ENDI
  268. GOTO RCOM100
  269. ENDI
  270. S9=S9*S27
  271. INC N27
  272. IF N27 LT 80 GOTO RCOM100
  273. RCOM300:
  274. FIND S9 "NO CARRIER"
  275. IF FOUND GOTO RCOM500
  276. SET RMOD ASCI
  277. SET FLAG(0) OFF
  278. RETU
  279. RCOM400:
  280. TRAN "^M^J... autodisconnect due to timeout^M^J"
  281. MESS "^M^J... autodisconnect due to timeout"
  282. GOTO RComm_Ex
  283. RCOM500:
  284. MESS "^M^JCaller disconnected"
  285. RComm_Ex:
  286. SET RMOD ASCI
  287. SET FLAG(0) ON
  288. RETU
  289. Display_:
  290. IF FLAG(1) RETURN
  291. TIME S9 1
  292. N19=S9(0:1)*60+S9(3:4)
  293. N18=S6(0:1)*60+S6(3:4)
  294. IF GT N18 N19
  295. N19=N19+1440
  296. ENDI
  297. N19=N0-(N19-N18)
  298. STRF S9 "^M^J(%d minutes remaining)" N19
  299. TRAN S9
  300. RETU
  301. Logon:
  302. FOPENI "BBS-User" TEXT
  303. IF FAILED
  304. SET FLAG(0) ON
  305. RETU
  306. ENDI
  307. Logon_Lo:
  308. READ S9 80 N19
  309. IF EOF
  310. FCLOSEI
  311. SET FLAG(0) ON
  312. RETU
  313. ENDI
  314. FIND S9(0:0) "<"
  315. IF FOUND GOTO Logon_Loop
  316. SWIT S1
  317. CASE S9(0:15)
  318. GOTO Logon_OK
  319. ENDC
  320. ENDS
  321. GOTO Logon_Lo
  322. Logon_OK:
  323. SET FLAG(1) OFF
  324. SET FLAG(3) ON
  325. N0=60
  326. FIND S9(16:16) "P"
  327. IF FOUND
  328. SET FLAG(1) ON
  329. N0=3000
  330. ENDI
  331. TIME S6 1
  332. FCLOSEI
  333. SET FLAG(0) OFF
  334. RETU
  335. Disp_Fil:
  336. IF ISFILE S8
  337. TRAN "^M^J"
  338. SEND ASCII S8
  339. RETU
  340. ENDI
  341. IF ISFILE S22&"\"*S8
  342. TRAN "^M^J"
  343. SEND ASCII S22&"\"*S8
  344. RETU
  345. ENDI
  346. TRAN S9
  347. RETU
  348. Log_Item:
  349. FOPENO S22&"\BBS-LOG" TEXT APPEND
  350. IF FAILED RETURN
  351. DATE S7
  352. CONC S9(59) S7
  353. TIME S7 1
  354. CONC S9(70) S7
  355. WRIT S9
  356. WRIT "^M"
  357. FCLOSEO
  358. RETU
  359. Copy_Tex:
  360. N20=0
  361. Copy_Loo:
  362. INC N20
  363. S9=N20&":  ^H"
  364. TRAN S9
  365. GOSU Read_Com
  366. IF FLAG(0) RETURN
  367. LENG S9 N18
  368. IF NOT ZERO N18
  369. PRES S9
  370. WRIT S9
  371. IF FAILED
  372. TRAN "Error recording text - please try later^M^J"
  373. RETU
  374. ENDI
  375. WRIT "!"
  376. GOTO Copy_Loo
  377. ELSE
  378. TRAN "^M^JComplete? (Y/N, cr=n): "
  379. GOSU Read_Com
  380. IF FLAG(0) RETURN
  381. IF NOT FIND S9 "Y"
  382. WRIT "!"
  383. GOTO Copy_Loo
  384. ENDI
  385. ENDI
  386. RETU
  387. Restart:
  388. CHDI S22
  389. SET RECH OFF
  390. SET RDIS OFF
  391. CLEA
  392. LOCA 0,0
  393. SET FLAG(1) OFF
  394. SET FLAG(2) OFF
  395. SET FLAG(3) OFF
  396. IF NOT ISSC "$$$SCHED"
  397. HANG
  398. MESS "^M^JWaiting..."
  399. PAUS 3
  400. ENDI
  401. SET BAUD S20(5:8)
  402. TRAN S21
  403. Wait_Con:
  404. RGET S9 80 180
  405. IF FAILED GOTO Wait_Connect
  406. FIND S9 "NO CARRIER"
  407. IF FOUND GOTO Exit
  408. FIND S9 "CONNECT"
  409. IF NOT FOUND GOTO Wait_Connect
  410. GOSU AutoBaud
  411. PAUS 3
  412. RFLU
  413. SET RECH ON
  414. SET RDIS ON
  415. PAUS 1
  416. S9="^M^JThe Flying Scotsman greets you!! ^M^J"
  417. S8="BBS-Welc"
  418. GOSU Disp_Fil
  419. N10=0
  420. ID_Query:
  421. MESS "^M^JID prompt: "
  422. TRAN "^M^JEnter your ID (or enter GUEST): "
  423. GOSU Read_Com
  424. IF FLAG(0) GOTO Exit
  425. IF NULL S9
  426. INC N10
  427. IF GE N10 3 GOTO Logon_Fail
  428. GOTO ID_Query
  429. ENDI
  430. SWIT S9
  431. CASE "GUEST"
  432. GOSU Register
  433. GOTO Exit
  434. ENDC
  435. ENDS
  436. S1=S9(0:7)
  437. UPPE S1
  438. Password:
  439. TRAN "^M^JEnter your password: "
  440. SET RECH OFF
  441. SET RDIS OFF
  442. GOSU Read_Com
  443. SET RECH ON
  444. IF FLAG(0) GOTO Exit
  445. SET RDIS ON
  446. IF NULL S9
  447. INC N10
  448. IF GE N10 3 GOTO Logon_Fail
  449. GOTO Password
  450. ENDI
  451. S1(8:79)=S9(0:7)
  452. GOSU Logon
  453. IF NOT FLAG(0)
  454. S9="Logon: "*S1(0:7)
  455. GOSU Log_Item
  456. SET FLAG(2) OFF
  457. S1=S1(0:7)
  458. CLOG "* BBS logon: "*S1
  459. TRAN "^M^J"
  460. GOTO Main_Pro
  461. ENDI
  462. Logon_Fa:
  463. TRAN "Unrecognized ID/Password^M^J"
  464. INC N10
  465. IF GE N10 3
  466. TRAN "You have exceeded the number of tries allowed for logon^M^JBye...^M^J"
  467. MESS "^M^JLogon attempts failed^M^J"
  468. S9="Failed logon"
  469. GOSU Log_Item
  470. GOTO Exit
  471. ENDI
  472. GOTO ID_Query
  473. Main_Pro:
  474. MESS "^M^JMain prompt: "
  475. GOSU Display_
  476. IF NOT FLAG(1)
  477. S9="^M^JC)omment, B)ulletins, M)ail, F)iles, A)larm or E)xit: "
  478. S8="BBS-NpMn"
  479. ELSE
  480. S9="^M^JP)rivileged, C)omment, B)ulletins, M)ail, F)iles, A)larm or E)xit: "
  481. S8="BBS-PrMn"
  482. ENDI
  483. GOSU Disp_Fil
  484. GOSU Read_Com
  485. IF FLAG(0) GOTO Exit
  486. LJ S9
  487. S9=S9(0:0)
  488. SWIT S9
  489. CASE "A"
  490. GOTO Alarm
  491. ENDC
  492. CASE "M"
  493. GOTO Mail_Com
  494. ENDC
  495. CASE "F"
  496. GOTO File_Com
  497. ENDC
  498. CASE "C"
  499. GOTO Comment
  500. ENDC
  501. CASE "B"
  502. GOTO Bull_Com
  503. ENDC
  504. CASE "E"
  505. GOTO Logoff
  506. ENDC
  507. CASE "P"
  508. IF FLAG(1) GOTO Priv_Prompt
  509. ENDC
  510. ENDS
  511. TRAN "^M^JCommand not recognized... try again^M^J"
  512. GOTO Main_Pro
  513. Logoff:
  514. CHDI S22
  515. TRAN "^M^JOK... Bye^M^J"
  516. S9="Logoff: "*S1(0:7)
  517. CLOG S9
  518. GOSU Log_Item
  519. Exit:
  520. S9="* BBS cycled"
  521. CLOG S9
  522. GOSU Log_Item
  523. MESS "^G"
  524. IF ISSC "$$$SCHED" GOTO End
  525. GOTO Restart
  526. Alarm:
  527. SOUN 440 500
  528. SOUN 493 100
  529. SOUN 554 100
  530. SOUN 587 100
  531. SOUN 659 100
  532. SOUN 739 100
  533. SOUN 830 100
  534. SOUN 880 500
  535. GOTO Main_Pro
  536. Priv_Pro:
  537. MESS "^M^JPrivilege prompt: "
  538. GOSU Display_
  539. IF NULL S26
  540. S9="^M^JL)ist, P)ath, S)ubdir, D)OS, M)ain or E)xit: "
  541. ELSE
  542. S9="^M^JL)ist, P)ath, S)ubdir, doorW)ay, D)OS, M)ain or E)xit: "
  543. ENDI
  544. S8="BBS-PPMn"
  545. GOSU Disp_Fil
  546. GOSU Read_Com
  547. IF FLAG(0) GOTO Exit
  548. LJ S9
  549. S9=S9(0:0)
  550. SWIT S9
  551. CASE "L"
  552. GOTO DIR
  553. ENDC
  554. CASE "S"
  555. GOTO CHDIR
  556. ENDC
  557. CASE "P"
  558. GOTO PATHLIST
  559. ENDC
  560. CASE "D"
  561. GOTO Shell
  562. ENDC
  563. CASE "W"
  564. GOTO DropDOS
  565. ENDC
  566. CASE "M"
  567. GOTO Main_Pro
  568. ENDC
  569. CASE "E"
  570. GOTO Logoff
  571. ENDC
  572. ENDS
  573. TRAN "^M^JCommand not recognized... try again^M^J"
  574. GOTO Priv_Pro
  575. CHDIR:
  576. MESS "^M^JCHDIR Command: "
  577. TRAN "^M^JEnter the drive:subdirectory: "
  578. GOSU Read_Com
  579. IF FLAG(0) GOTO Exit
  580. IF NOT NULL S9
  581. CHDI S9
  582. SET FLAG(2) ON
  583. ENDI
  584. GOTO Priv_Pro
  585. PATHLIST:
  586. MESS "^M^JPathlist command: "
  587. TRAN "^M^JWorking..."
  588. DOS "TREED >\HOSTTEMP.TXT"
  589. TRAN "^M^JUse control-S to suspend, control-Q to continue^M^J"
  590. SEND ASCII "\HOSTTEMP.TXT"
  591. TRAN "^M^J"
  592. DELE "\HOSTTEMP.TXT"
  593. GOTO Priv_Pro
  594. Shell:
  595. MESS "^M^JDOS Command: "
  596. TRAN "^M^JWarning: this command may be used to invoke ANY COMMAND that"
  597. TRAN "^M^JDOS can execute.  If you load a program requiring keyboard  "
  598. TRAN "^M^Jentry, you lock yourself out and leave the board unusable."
  599. TRAN "^M^J"
  600. TRAN "^M^JEnter your command: "
  601. GOSU Read_Com
  602. IF FLAG(0) GOTO Exit
  603. IF NULL S9
  604. GOTO Priv_Pro
  605. ENDI
  606. IF FIND S9 "FORMAT"
  607. TRAN "^M^JFormat commands are not allowed..."
  608. GOTO Priv_Pro
  609. ENDI
  610. TRAN "^M^JWorking..."
  611. CONC S9 ">\HOSTTEMP.TXT"
  612. DOS S9
  613. TRAN "^M^JUse control-S to suspend, control-Q to continue^M^J"
  614. SEND ASCII "\HOSTTEMP.TXT"
  615. TRAN "^M^J"
  616. DELE "\HOSTTEMP.TXT"
  617. GOTO Priv_Pro
  618. Dir:
  619. MESS "^M^JDirectory command: "
  620. TRAN "^M^JWorking..."
  621. DOS "DIR >\HOSTTEMP.TXT"
  622. TRAN "^M^JUse control-S to suspend, control-Q to continue^M^J"
  623. SEND ASCII "\HOSTTEMP.TXT"
  624. TRAN "^M^J"
  625. DELE "\HOSTTEMP.TXT"
  626. GOTO Priv_Pro
  627. DROPDOS:
  628. IF NULL S26
  629. TRAN "^M^JCommand not recognized... try again"
  630. GOTO Priv_Pro
  631. ENDI
  632. FOPENO "HOSTTEMP.BAT" TEXT
  633. IF NOT SUCCESS
  634. TRAN "File error - cannot drop to DOS^M^J"
  635. GOTO Priv_Pro
  636. ENDI
  637. WRIT "ECHO OFF!"
  638. S0=S26
  639. PRES S0
  640. WRIT S0
  641. WRIT "!"
  642. WRIT S29(0:1)*"!"
  643. IF NOT NULL S29(2:79) WRITE "CD "*S29(2:79)&"!"
  644. WRIT "COM-AND /q/p/f"
  645. WRIT "_SCRIPT"&"!"
  646. WRIT "^Z"
  647. FCLOSEO
  648. S0="OFFOFFOFF"
  649. IF FLAG(1) S0(0:2)="ON"
  650. IF FLAG(2) S0(3:5)="ON"
  651. IF FLAG(3) S0(6:8)="ON"
  652. STOR STRING "HOSTTEMP.STR"
  653. CLOG "* Drop-to-DOS"
  654. SET TTHR OFF
  655. STAC CLEAR
  656. STAC "HOSTTEMP.BAT!"
  657. BYE
  658. File_Com:
  659. MESS "^M^JFile prompt: "
  660. SUBD S19
  661. CHDI S23
  662. File_Pro:
  663. GOSU Display_
  664. S9="^M^JL)ist, S)earch, U)pload, D)ownload, M)ain or E)xit: "
  665. S8="BBS-FiMe"
  666. GOSU Disp_Fil
  667. GOSU Read_Com
  668. IF FLAG(0) GOTO Exit
  669. LJ S9
  670. S9=S9(0:0)
  671. SWIT S9
  672. CASE "D"
  673. GOTO DOWNLOAD
  674. ENDC
  675. CASE "U"
  676. GOTO UPLOAD
  677. ENDC
  678. CASE "L"
  679. GOTO FILELIST
  680. ENDC
  681. CASE "S"
  682. GOTO Search
  683. ENDC
  684. CASE "M"
  685. CHDI S19
  686. GOTO Main_Pro
  687. ENDC
  688. CASE "E"
  689. GOTO Logoff
  690. ENDC
  691. ENDS
  692. TRAN "Invalid selection - try again^M^J"
  693. GOTO FILE_Pro
  694. File_Que:
  695. MESS "^M^JFname query: "
  696. TRAN "^M^JEnter the file name: "
  697. GOSU Read_Com
  698. RETU
  699. UPLOAD:
  700. MESS "^M^JUpload from caller "
  701. GOSU File_Que
  702. IF FLAG(0) GOTO Exit
  703. IF NULL S9
  704. GOTO File_Pro
  705. ENDI
  706. IF FIND S9 "\" and NOT FLAG(1)
  707. TRAN "^M^JQualified file names are not permitted."
  708. GOTO UPLOAD
  709. ENDI
  710. IF ISDLFILE S9
  711. TRAN "^M^JFile already exists"
  712. GOTO UPLOAD
  713. ENDI
  714. MESS "^M^JUlo Method prompt: "
  715. TRAN "^M^JW)xmodem, X)modem, Y)modem (X1k), Z)modem, or K)ermit: "
  716. S8=S9
  717. GOSU Read_Com
  718. IF FLAG(0) GOTO Exit
  719. LJ S9
  720. S9=S9(0:0)
  721. TIME S10 1
  722. SWIT S9
  723. CASE "W"
  724. TRAN "^M^JBegin your transfer procedure..."
  725. GETF WXMODEM S8
  726. ENDC
  727. CASE "X"
  728. TRAN "^M^JBegin your transfer procedure..."
  729. GETF XMODEM S8
  730. ENDC
  731. CASE "Y"
  732. TRAN "^M^JBegin your transfer procedure..."
  733. GETF YMODEM S8
  734. ENDC
  735. CASE "Z"
  736. TRAN "^M^JBegin your transfer procedure..."
  737. GETF ZMODEM
  738. ENDC
  739. CASE "K"
  740. TRAN "^M^JBegin your transfer procedure..."
  741. GETF KERMIT
  742. ENDC
  743. DEFA
  744. TRAN "^M^JInvalid transfer selection"
  745. SET SUCC OFF
  746. GOTO EOTransf
  747. ENDC
  748. ENDS
  749. IF FAILED
  750. S9="Upload ("*S9(0:0)*"): "*S8&", Failure"
  751. GOSU Log_Item
  752. DELE S8
  753. SET SUCC OFF
  754. GOTO EOTransf
  755. ELSE
  756. S9="Upload ("*S9(0:0)*"): "*S8&", Success"
  757. GOSU Log_Item
  758. ENDI
  759. IF FIND S8 "\"
  760. GOTO File_Pro
  761. ENDI
  762. TIME S11 1
  763. N19=S11(0:1)*60+S11(3:4)
  764. N18=S10(0:1)*60+S10(3:4)
  765. IF GT N18 N19
  766. N19=N19+1440
  767. ENDI
  768. N0=N0+(N19-N18)
  769. Describe:
  770. TRAN "^M^JDescription: "
  771. GOSU Read_Com
  772. IF FLAG(0) GOTO Exit
  773. IF NULL S9
  774. TRAN "^M^JPlease leave something of a description"
  775. GOTO Describe
  776. ENDI
  777. FOPENO "BBS-File" TEXT APPEND
  778. IF FAILED
  779. S9="Uload of "*S8&" succeeded, but BBS-FIle open failed"
  780. GOSU Log_Item
  781. SET SUCC OFF
  782. GOTO EOTransf
  783. ENDI
  784. DATE S0
  785. S8=S8&"           "
  786. FSIZ S11 S8
  787. S10=S8(0:11)*S0(0:7)*" "*S11(0:6)*S9
  788. WRIT S10
  789. WRIT "!"
  790. FCLOSEO
  791. SET SUCC ON
  792. GOTO EOTransf
  793. DOWNLOAD:
  794. MESS "^M^JDownload to caller "
  795. GOSU File_Que
  796. IF FLAG(0) GOTO Exit
  797. IF NULL S9 GOTO File_Prompt
  798. IF FIND S9 "\"
  799. IF NOT FLAG(1)
  800. TRAN "^M^JQualified file names are not permitted."
  801. GOTO DOWNLOAD
  802. ENDI
  803. ENDI
  804. IF NOT ISFILE S9
  805. GOSU FileTest
  806. IF FAILED
  807. TRAN "^M^JFile doesn't exist"
  808. GOTO DOWNLOAD
  809. ENDI
  810. ENDI
  811. S8=S9
  812. MESS "^M^JDlo Method prompt "
  813. TRAN "^M^JW)xmodem, X)modem, Y)modem (X1k), Z)modem, K)ermit, or A)scii: "
  814. GOSU Read_Com
  815. IF FLAG(0) GOTO Exit
  816. LJ S9
  817. S9=S9(0:0)
  818. SWIT S9
  819. CASE "A"
  820. TRAN "^M^JUse control-S to suspend, control-Q to continue^M^J"
  821. SEND ASCII S8
  822. ENDC
  823. CASE "W"
  824. TRAN "^M^JBegin your transfer procedure..."
  825. SEND WXMODEM S8
  826. ENDC
  827. CASE "X"
  828. TRAN "^M^JBegin your transfer procedure..."
  829. SEND XMODEM S8
  830. ENDC
  831. CASE "Y"
  832. TRAN "^M^JBegin your transfer procedure..."
  833. SEND YMODEM S8
  834. ENDC
  835. CASE "Z"
  836. TRAN "^M^JBegin your transfer procedure..."
  837. SEND ZMODEM S8
  838. ENDC
  839. CASE "K"
  840. TRAN "^M^JBegin your transfer procedure..."
  841. SEND KERMIT S8
  842. ENDC
  843. DEFA
  844. TRAN "^M^JInvalid transfer selection"
  845. SET SUCC OFF
  846. GOTO EOTransf
  847. ENDC
  848. ENDS
  849. IF FAILED
  850. S9="Download ("*S9(0:0)*"): "*S8&", Failure"
  851. GOSU Log_Item
  852. SET SUCC OFF
  853. ELSE
  854. S9="Download ("*S9(0:0)*"): "*S8&", Success"
  855. GOSU Log_Item
  856. SET SUCC ON
  857. ENDI
  858. EOTransf:
  859. IF FAILED
  860. MESS "^M^JTransfer failed "
  861. ELSE
  862. MESS "^M^JTransfer OK "
  863. ENDI
  864. GOTO File_Pro
  865. FileTest:
  866. FOPENI "BBS-File" TEXT
  867. IF FAILED
  868. SET SUCC OFF
  869. RETU
  870. ENDI
  871. LJ S9
  872. FTestLoo:
  873. READ S0 80 N19
  874. IF EOF GOTO FTestEnd
  875. IF FIND S0(0:0) "*" GOTO FTestLoop
  876. IF NOT FIND S0(0:11) S9 GOTO FTestLoop
  877. S2=S0(0:11)
  878. IF FIND S0(28:28) "^A"
  879. IF FIND S0(29:79) "^A" N11
  880. S2=S0(29:29+N11-1)&"\"*S2
  881. ENDI
  882. ENDI
  883. IF NOT ISFILE S2 GOTO FTestLoop
  884. S9=S2
  885. FCLOSEI
  886. SET SUCC ON
  887. RETU
  888. FTestEnd:
  889. FCLOSEI
  890. SET SUCC OFF
  891. RETU
  892. Filelist:
  893. N10=0
  894. FOPENI "BBS-File" TEXT
  895. IF FAILED
  896. TRAN "^M^JNo files are available at this time^M^J"
  897. GOTO File_Pro
  898. ENDI
  899. FListLoo:
  900. READ S9 80 N19
  901. IF EOF GOTO FListEnd
  902. IF FIND S9(0:0) "*" GOTO FListPrint
  903. S0=S9(0:11)
  904. IF FIND S9(28:28) "^A"
  905. IF FIND S9(29:79) "^A" N11
  906. S0=S9(29:29+N11-1)&"\"*S0
  907. S9(28:79)=S9(29+N11+1:79)
  908. ENDI
  909. ENDI
  910. IF NOT ISFILE S0 GOTO FListLoop
  911. IF FIND S9(12:12) "*"
  912. FDAT S2 S0 1
  913. FSIZ S3 S0
  914. S9(12:19)=S2
  915. S9(21:27)=S3
  916. ENDI
  917. IF ZERO N10
  918. TRAN "^M^JName           Dated    Size    Description ^M^J"
  919. TRAN "------------ -------- ------- ----------------------------------------------^M^J"
  920. ENDI
  921. S9=S9(0:11)*" "*S9(12:19)*" "*S9(21:27)*" "*S9(28:79)
  922. FListPri:
  923. PRES S9
  924. TRAN S9
  925. TRAN "^M^J"
  926. N10=N10+1
  927. GOTO FListLoo
  928. FListEnd:
  929. FCLOSEI
  930. GOTO File_Pro
  931. Search:
  932. TRAN "^M^JEnter the search string: "
  933. GOSU Read_Com
  934. IF FLAG(0) GOTO Exit
  935. IF NULL S9 GOTO File_Prompt
  936. S18=S9
  937. FOPENI "BBS-File" TEXT
  938. IF FAILED
  939. TRAN "^M^JNo files are available at this time^M^J"
  940. GOTO File_Pro
  941. ENDI
  942. N10=0
  943. Search_L:
  944. READ S9 80 N19
  945. IF EOF GOTO Search_End
  946. IF FIND S9(0:0) "*" GOTO Search_Loop
  947. S0=S9(0:11)
  948. IF FIND S9(28:28) "^A"
  949. IF FIND S9(29:79) "^A" N11
  950. S0=S9(29:29+N11-1)&"\"*S0
  951. S9(28:79)=S9(29+N11+1:79)
  952. ENDI
  953. ENDI
  954. IF NOT ISFILE S0 GOTO Search_Loop
  955. IF FIND S9(12:12) "*"
  956. FDAT S2 S0 1
  957. FSIZ S3 S0
  958. S9(12:19)=S2
  959. S9(21:27)=S3
  960. ENDI
  961. IF NOT FIND S9 S18 GOTO Search_Loop
  962. IF ZERO N10
  963. TRAN "^M^JName           Dated    Size    Description ^M^J"
  964. TRAN "------------ -------- ------- ----------------------------------------------^M^J"
  965. ENDI
  966. S0=S9(0:11)*" "*S9(12:19)*" "*S9(21:27)*" "*S9(28:79)
  967. PRES S0
  968. TRAN S0
  969. TRAN "^M^J"
  970. N10=N10+1
  971. GOTO Search_L
  972. Search_E:
  973. IF ZERO N10
  974. TRAN "^M^JNo matches"
  975. ENDI
  976. FCLOSEI
  977. GOTO File_Pro
  978. Comment:
  979. SUBD S19
  980. CHDI S22
  981. MESS "^M^JComment requested "
  982. S9="Do you wish to leave a comment? (Y/N, cr=n): "
  983. S8="BBS-NoMe"
  984. GOSU Disp_Fil
  985. GOSU Read_Com
  986. IF FLAG(0) GOTO Exit
  987. FIND S9 "Y"
  988. IF NOT FOUND
  989. TRAN "OK"
  990. CHDI S19
  991. GOTO Main_Pro
  992. ENDI
  993. FOPENO "BBS-Note" TEXT APPEND
  994. IF FAILED
  995. TRAN "Error recording note - please try later^M^J"
  996. CHDI S19
  997. GOTO Main_Pro
  998. ENDI
  999. S9="*** Note left by "
  1000. CONC S9(17) S1
  1001. DATE S8
  1002. CONC S9(25) S8(0:9)
  1003. TIME S8 1
  1004. CONC S9(35) S8(0:7)
  1005. WRIT S9
  1006. WRIT "!"
  1007. TRAN "Each line, as you enter it will be recorded.  No edits, yet...^M^J"
  1008. TRAN "Enter a line/line(s) of text.  A blank line ends the note.^M^J"
  1009. GOSU Copy_Tex
  1010. WRIT "------------!"
  1011. FCLOSEO
  1012. IF FLAG(0) GOTO Exit
  1013. TRAN "Your note has been recorded - thanks^M^J"
  1014. S9="Comment recorded"
  1015. GOSU Log_Item
  1016. CHDI S19
  1017. GOTO Main_Pro
  1018. Bull_Com:
  1019. SUBD S19
  1020. CHDI S25
  1021. BULL_Lis:
  1022. MESS "^M^JBulletin list: "
  1023. N10=0
  1024. FOPENI "BBS-Bull" TEXT
  1025. IF FAILED
  1026. TRAN "^M^JNo bulletins exist^M^J"
  1027. CHDI S19
  1028. GOTO Main_Pro
  1029. ENDI
  1030. Bull_Loo:
  1031. READ S9 80 N19
  1032. IF EOF GOTO Bull_Prompt
  1033. IF NOT NULL S9(13:13)
  1034. IF NOT FLAG(1) GOTO Bull_Loop
  1035. ENDI
  1036. IF FIND S9(0:0) "*" GOTO Bull_Loop
  1037. S0=S9(14:25)
  1038. IF NOT ISFILE S0 GOTO Bull_Loop
  1039. IF ZERO N10
  1040. TRAN "^M^JNum    Dated     Subject^M^J"
  1041. TRAN "----- -------- -------------------------------------------------------------^M^J"
  1042. ENDI
  1043. S0=S9(0:4)*" "*S9(5:12)*" "*S9(26:79)
  1044. PRES S0
  1045. TRAN S0
  1046. TRAN "^M^J"
  1047. N10=N10+1
  1048. GOTO Bull_Loo
  1049. Bull_Pro:
  1050. FCLOSEI
  1051. GOSU Display_
  1052. S9="^M^JL)ist, M)ain, E)xit, or a bulletin number: "
  1053. S8="BBS-BuMe"
  1054. GOSU Disp_Fil
  1055. GOSU Read_Com
  1056. IF FLAG(0) GOTO Exit
  1057. LJ S9
  1058. IF FIND S9(0:0) "L"
  1059. GOTO Bull_Lis
  1060. ENDI
  1061. IF FIND S9(0:0) "M"
  1062. CHDI S19
  1063. GOTO Main_Pro
  1064. ENDI
  1065. IF FIND S9(0:0) "E"
  1066. GOTO Logoff
  1067. ENDI
  1068. FOPENI "BBS-Bull" TEXT
  1069. IF FAILED
  1070. TRAN "^M^JNo bulletins available^M^J"
  1071. CHDI S19
  1072. GOTO Main_Pro
  1073. ENDI
  1074. S0=S9
  1075. Bull_Sca:
  1076. READ S9 80 N19
  1077. IF EOF
  1078. TRAN "^M^JNo such bulletin!! ^M^J"
  1079. FCLOSEI
  1080. GOTO Bull_Pro
  1081. ENDI
  1082. IF FIND S9(0:0) "*" GOTO Bull_Scan
  1083. IF NOT NULL S9(13:13)
  1084. IF NOT FLAG(1) GOTO Bull_Scan
  1085. ENDI
  1086. S8=S9(14:25)
  1087. IF NOT ISFILE S8 GOTO Bull_Scan
  1088. S9=S9(0:4)
  1089. LJ S9
  1090. SWIT S9
  1091. CASE S0(0:4)
  1092. GOTO Bull_Rea
  1093. ENDC
  1094. ENDS
  1095. GOTO Bull_Sca
  1096. Bull_Rea:
  1097. FCLOSEI
  1098. MESS "^M^JReading bulletin: "*S8
  1099. S9="^M^JError opening bulletin file"
  1100. GOSU Disp_Fil
  1101. S9="Bulletin "*S8&" read"
  1102. GOSU Log_Item
  1103. GOTO Bull_Pro
  1104. Mail_Com:
  1105. MESS "^M^JMail prompt: "
  1106. SUBD S19
  1107. CHDI S24
  1108. Mail_Pro:
  1109. GOSU Display_
  1110. S9="^M^JS)can, L)ist, N)ew, A)ll, W)rite, M)ain or E)xit: "
  1111. S8="BBS-MeMe"
  1112. GOSU Disp_Fil
  1113. GOSU Read_Com
  1114. IF FLAG(0) GOTO Exit
  1115. LJ S9
  1116. S9=S9(0:0)
  1117. SWIT S9
  1118. CASE "N"
  1119. GOTO Read_New
  1120. ENDC
  1121. CASE "A"
  1122. GOTO Read_All
  1123. ENDC
  1124. CASE "W"
  1125. GOTO Write_ms
  1126. ENDC
  1127. CASE "S"
  1128. GOTO Scan_Msg
  1129. ENDC
  1130. CASE "L"
  1131. GOTO List_Msg
  1132. ENDC
  1133. CASE "M"
  1134. CHDI S19
  1135. GOTO Main_Pro
  1136. ENDC
  1137. CASE "E"
  1138. GOTO Logoff
  1139. ENDC
  1140. ENDS
  1141. TRAN "Invalid selection - try again^M^J"
  1142. GOTO Mail_Pro
  1143. Scan_Msg:
  1144. N10=0
  1145. N11=0
  1146. FOPENI "BBS-Mail" TEXT
  1147. IF FAILED GOTO Scan_Rpt
  1148. TRAN "^M^JWorking..."
  1149. Scan_Loo:
  1150. READ S9 80 N19
  1151. IF EOF GOTO Scan_Rpt
  1152. S0=S9(0:7)
  1153. SWIT S0
  1154. CASE S1
  1155. S0=S9(25:37)
  1156. IF ISFILE S0 INC N11
  1157. ENDC
  1158. ENDS
  1159. INC N10
  1160. N12=N10/10*10
  1161. IF EQ N10 N12
  1162. TRAN "."
  1163. ENDI
  1164. GOTO Scan_Loo
  1165. Scan_Rpt:
  1166. IF ZERO N11
  1167. TRAN "^M^JYou have no messages waiting"
  1168. ELSE
  1169. STRF S0 "^M^JYou have %d message(s) waiting." N11
  1170. TRAN S0
  1171. ENDI
  1172. FCLOSEI
  1173. GOTO Mail_Pro
  1174. List_Msg:
  1175. N10=0
  1176. FOPENI "BBS-Mail" TEXT
  1177. IF FAILED
  1178. TRAN "^M^JNo mail exists - why not write something?^M^J"
  1179. GOTO Mail_Pro
  1180. ENDI
  1181. List_Loo:
  1182. READ S9 80 N19
  1183. IF EOF GOTO List_End
  1184. S0=S9(0:7)
  1185. SWIT S0
  1186. CASE S1
  1187. ENDC
  1188. DEFA
  1189. IF FIND S9(16:16) "P"
  1190. IF NOT STRCMP S9(8:15) S1
  1191. GOTO List_Loo
  1192. ENDI
  1193. ENDI
  1194. ENDC
  1195. ENDS
  1196. S0=S9(25:37)
  1197. IF NOT ISFILE S0 GOTO List_Loop
  1198. IF ZERO N10
  1199. TRAN "^M^JTo       From        Date     Subject^M^J"
  1200. TRAN "-------- -------- -------- -------------------------------------------------^M^J"
  1201. ENDI
  1202. S0=S9(0:7)*" "*S9(8:15)*" "*S9(17:24)*" "*S9(38:79)
  1203. PRES S0
  1204. TRAN S0
  1205. TRAN "^M^J"
  1206. N10=N10+1
  1207. GOTO List_Loo
  1208. List_End:
  1209. FCLOSEI
  1210. GOTO Mail_Pro
  1211. Read_New:
  1212. S7="        "
  1213. IF NOT ISFILE S1&".NEW" GOTO Read_Msg
  1214. FOPENI S1&".NEW" TEXT
  1215. IF FAILED GOTO Read_Msg
  1216. READ S7 8 N19
  1217. FCLOSEI
  1218. GOTO Read_Msg
  1219. Read_All:
  1220. S7="        "
  1221. GOTO Read_Msg
  1222. DateTest:
  1223. IF NOT NUMERIC S2(0) or NOT NUMERIC S2(3) or NOT NUMERIC S2(6)
  1224. N10=0
  1225. RETU
  1226. ENDI
  1227. IF NOT NUMERIC S0(0) or NOT NUMERIC S0(3) or NOT NUMERIC S0(6)
  1228. N10=0
  1229. RETU
  1230. ENDI
  1231. IF S0(6:7) EQ S2(6:7)
  1232. N10=(S0(0:1)*100+S0(3:4))-(S2(0:1)*100+S2(3:4))
  1233. IF N10 LT 0
  1234. N10=-1
  1235. ELSE
  1236. IF N10 GT 0
  1237. N10=1
  1238. ELSE
  1239. N10=0
  1240. ENDI
  1241. ENDI
  1242. RETU
  1243. ENDI
  1244. N10=S0(6:7)+1900
  1245. N11=S2(6:7)+1900
  1246. IF S0(6:7) LT 80 N10=N10+100
  1247. IF S2(6:7) LT 80 N11=N10+100
  1248. IF N10 LT N11
  1249. N10=-1
  1250. ELSE
  1251. IF N10 GT N11
  1252. N10=1
  1253. ELSE
  1254. N10=0
  1255. ENDI
  1256. ENDI
  1257. RETU
  1258. Read_Msg:
  1259. FOPENI "BBS-Mail" TEXT
  1260. IF FAILED
  1261. TRAN "^M^JNo mail exists - why not write something?^M^J"
  1262. GOTO Mail_Pro
  1263. ENDI
  1264. S3="        "
  1265. Read_Loo:
  1266. READ S9 80 N19
  1267. IF EOF GOTO Read_End
  1268. S2=S9(17:24)
  1269. S0=S7
  1270. GOSU DateTest
  1271. IF N10 GT 0 GOTO Read_Loop
  1272. S0=S9(0:7)
  1273. SWIT S0
  1274. CASE S1
  1275. SET FLAG(9) ON
  1276. ENDC
  1277. DEFA
  1278. SET FLAG(9) OFF
  1279. IF STRCMP S9(8:15) S1 SET FLAG(9) ON
  1280. IF FIND S9(16:16) "P" and NOT FLAG(9)
  1281. GOTO Read_Loo
  1282. ENDI
  1283. ENDC
  1284. ENDS
  1285. S0=S9(25:37)
  1286. IF NOT ISFILE S0 GOTO Read_Loop
  1287. S4=S9(8:15)
  1288. S5=S9(38:79)
  1289. S8=S0
  1290. S9="^M^JError opening mailfile"
  1291. GOSU Disp_Fil
  1292. S0=S3
  1293. GOSU DateTest
  1294. IF NULL S3 or N10 LT 0 S3=S2
  1295. Read_Dis:
  1296. IF FLAG(9)
  1297. TRAN "^M^JD)elete, R)eply, Q)uit (cr=continue): "
  1298. ELSE
  1299. TRAN "^M^JR)eply, Q)uit (cr=continue): "
  1300. ENDI
  1301. GOSU Read_Com
  1302. IF FLAG(0) GOTO Exit
  1303. LJ S9
  1304. S9=S9(0:0)
  1305. IF NULL S9 S9="c"
  1306. SWIT S9
  1307. CASE "D"
  1308. IF FLAG(9)
  1309. DELE S8
  1310. TRAN "Message deleted^M^J"
  1311. ELSE
  1312. TRAN "You may not delete this note^M^J"
  1313. ENDI
  1314. ENDC
  1315. CASE "R"
  1316. S10=S4
  1317. S11=S5
  1318. IF NOT STRCMP S5(0:9) "Reply to: " S11="Reply to: "*S5
  1319. GOSU Reply
  1320. IF FLAG(0) GOTO Exit
  1321. ENDC
  1322. CASE "C"
  1323. GOTO Read_Loo
  1324. ENDC
  1325. CASE "Q"
  1326. GOTO Read_End
  1327. ENDC
  1328. DEFA
  1329. TRAN "^M^JUnrecognized command - please try again^M^J"
  1330. ENDC
  1331. ENDS
  1332. GOTO Read_Dis
  1333. Read_End:
  1334. FCLOSEI
  1335. IF NOT NULL S3
  1336. FOPENO S1&".NEW" TEXT
  1337. IF FAILED GOTO Mail_Prompt
  1338. WRIT S3*"!"
  1339. FCLOSEO
  1340. ENDI
  1341. GOTO Mail_Pro
  1342. Write_Ms:
  1343. GOSU Compose
  1344. IF FLAG(0) GOTO Exit
  1345. GOTO Mail_Pro
  1346. Compose:
  1347. TRAN "To:  ^H"
  1348. GOSU Read_Com
  1349. IF FLAG(0) RETURN
  1350. LJ S9
  1351. IF NULL S9 RETURN
  1352. S10=S9(0:7)
  1353. UPPE S10
  1354. TRAN "Subject:    ^H"
  1355. GOSU Read_Com
  1356. IF FLAG(0) RETURN
  1357. S11=S9
  1358. PRES S11
  1359. Reply:
  1360. FOPENO "\HOSTTEMP.TXT" TEXT
  1361. IF FAILED
  1362. TRAN "Error opening file - please try later^M^J"
  1363. RETU
  1364. ENDI
  1365. S9="To:       "
  1366. CONC S9(7) S10
  1367. WRIT S9
  1368. WRIT "!"
  1369. S9="From: "
  1370. CONC S9(7) S1
  1371. WRIT S9
  1372. WRIT "!"
  1373. S9="Date: "
  1374. DATE S12
  1375. CONC S9(7) S12
  1376. TIME S8 1
  1377. CONC S9(17) S8
  1378. WRIT S9
  1379. WRIT "!"
  1380. S9="Subject: "
  1381. CONC S9(9) S11
  1382. WRIT S9
  1383. WRIT "!"
  1384. WRIT "!"
  1385. TRAN "Each line, as you enter it will be recorded.  No edits, yet...^M^J"
  1386. TRAN "Enter a line/line(s) of text.  A blank line ends the text.^M^J"
  1387. GOSU Copy_Tex
  1388. FCLOSEO
  1389. IF FLAG(0) RETURN
  1390. TRAN "Save? (Y/N, cr=y):  ^H"
  1391. GOSU Read_Com
  1392. IF FLAG(0) RETURN
  1393. IF FIND S9 "N" RETURN
  1394. TRAN "^M^JScanning for free slot"
  1395. N10=0
  1396. S0=S10(0:7)
  1397. WHIL ISFILE S0&"."&N10
  1398. INC N10
  1399. IF N10 GT 999
  1400. TRAN "^M^JToo many notes left undeleted - cannot save^M^J"
  1401. RETU
  1402. ENDI
  1403. ENDW
  1404. TRAN "^M^JPrivate? (Y/N, cr=n): "
  1405. GOSU Read_Com
  1406. IF FLAG(0) RETURN
  1407. S13=" "
  1408. IF FIND S9 "Y" S13="P"
  1409. S0=S0&"."&N10
  1410. S9="COPY \HOSTTEMP.TXT "*S0
  1411. DOS S9
  1412. FOPENO "BBS-Mail" TEXT APPEND
  1413. WRIT S10 8
  1414. WRIT S1 8
  1415. WRIT S13 1
  1416. WRIT S12 8
  1417. WRIT S0 13
  1418. WRIT S11 40
  1419. WRIT "!"
  1420. FCLOSEO
  1421. RETU
  1422. Register:
  1423. MESS "^M^JRegistration requested "
  1424. S9="Do you wish to register? (Y/N, cr=y): "
  1425. S8="BBS-ReMe"
  1426. GOSU Disp_Fil
  1427. GOSU Read_Com
  1428. IF FLAG(0)
  1429. S9="Registration aborted - disconn"
  1430. GOSU Log_Item
  1431. RETU
  1432. ENDI
  1433. IF FIND S9 "N"
  1434. S9="Registration declined by caller"
  1435. GOSU Log_Item
  1436. TRAN "OK - bye^M^J"
  1437. RETU
  1438. ENDI
  1439. TRAN "Enter your full name: "
  1440. GOSU Read_Com
  1441. IF FLAG(0) RETURN
  1442. S18=S9
  1443. TRAN "Enter your street address: "
  1444. GOSU Read_Com
  1445. IF FLAG(0) RETURN
  1446. S17=S9
  1447. TRAN "Enter your city/state and zip: "
  1448. GOSU Read_Com
  1449. IF FLAG(0) RETURN
  1450. S16=S9
  1451. TRAN "Enter a area code and phone number where^M^J"
  1452. TRAN "you may be reached:  "
  1453. GOSU Read_Com
  1454. IF FLAG(0) RETURN
  1455. S15=S9
  1456. Reg_ID:
  1457. TRAN "Enter the ID (1-8 chars) you wish to use: "
  1458. GOSU Read_Com
  1459. IF FLAG(0) RETURN
  1460. IF FIND S9(0:7) "."
  1461. TRAN "ID may not contain '.'s^M^J"
  1462. GOTO Reg_ID
  1463. ENDI
  1464. IF FIND S9(0:7) ","
  1465. TRAN "ID may not contain ','s^M^J"
  1466. GOTO Reg_ID
  1467. ENDI
  1468. IF FIND S9(0:7) "\"
  1469. TRAN "ID may not contain '\'s^M^J"
  1470. GOTO Reg_ID
  1471. ENDI
  1472. IF FIND S9(0:7) "/"
  1473. TRAN "ID may not contain '/'s^M^J"
  1474. GOTO Reg_ID
  1475. ENDI
  1476. S14=S9(0:7)
  1477. Reg_Pass:
  1478. TRAN "Enter the password (1-8 chars) you wish to use: "
  1479. GOSU Read_Com
  1480. IF FLAG(0) RETURN
  1481. IF NULL S9(0:7)
  1482. TRAN "You must have a password^M^J"
  1483. GOTO Reg_Pass
  1484. ENDI
  1485. S14=S14&";"&S9(0:7)
  1486. TRAN "^M^JRepeating your entry...^M^J"
  1487. TRAN S18
  1488. TRAN "^M^J"
  1489. TRAN S17
  1490. TRAN "^M^J"
  1491. TRAN S16
  1492. TRAN "^M^J"
  1493. TRAN S15
  1494. TRAN "^M^J"
  1495. TRAN S14
  1496. TRAN "^M^JIs this correct? (Y/N, cr=n): "
  1497. GOSU Read_Com
  1498. IF FLAG(0) RETURN
  1499. FIND S9 "Y"
  1500. IF NOT FOUND GOTO Register
  1501. FOPENO "BBS-Note" TEXT APPEND
  1502. IF FAILED
  1503. TRAN "Error recording registration - please call back^M^J"
  1504. RETU
  1505. ENDI
  1506. S9="*** Registration requested: "
  1507. DATE S1
  1508. CONC S9(27) S1
  1509. TIME S1 1
  1510. CONC S9(38) S1
  1511. WRIT S9
  1512. WRIT "!"
  1513. WRIT S18 80
  1514. WRIT "!"
  1515. WRIT S17 80
  1516. WRIT "!"
  1517. WRIT S16 80
  1518. WRIT "!"
  1519. WRIT S15 80
  1520. WRIT "!"
  1521. WRIT S14 80
  1522. WRIT "!"
  1523. WRIT "------------!"
  1524. S9="Registration requested"
  1525. GOSU Log_Item
  1526. TRAN "Your request will be processed by the SYSOP^M^J"
  1527. TRAN "Thanks for calling...^M^J"
  1528. FCLOSEO
  1529. RETU
  1530. AutoBaud:
  1531. IF FIND "_DDOVER" "ON" GOTO AUBA100
  1532. IF FIND S9 "1200"
  1533. SET BAUD 1200
  1534. GOTO AUBA100
  1535. ENDI
  1536. IF FIND S9 "2400"
  1537. SET BAUD 2400
  1538. GOTO AUBA100
  1539. ENDI
  1540. IF FIND S9 "4800"
  1541. SET BAUD 4800
  1542. GOTO AUBA100
  1543. ENDI
  1544. IF FIND S9 "9600"
  1545. SET BAUD 9600
  1546. GOTO AUBA100
  1547. ENDI
  1548. IF FIND S9 "14400" or FIND S9 "14.4"
  1549. SET BAUD 14k
  1550. GOTO AUBA100
  1551. ENDI
  1552. IF FIND S9 "19200" or FIND S9 "19.2"
  1553. SET BAUD 19k
  1554. GOTO AUBA100
  1555. ENDI
  1556. IF FIND S9 "38400" or FIND S9 "38.4"
  1557. SET BAUD 38k
  1558. GOTO AUBA100
  1559. ENDI
  1560. IF FIND S9 "57600" or FIND S9 "57.6"
  1561. SET BAUD 57k
  1562. GOTO AUBA100
  1563. ENDI
  1564. SET BAUD 300
  1565. AUBA100:
  1566. GOSU Log_Item
  1567. RETU
  1568.